package com.dds.system.domain.union;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dds.common.annotation.Excel;
import com.dds.common.core.domain.BaseEntity;

/**
 * 联盟商订单对象 union_shop_order
 * 
 * @author ruoyi
 * @date 2021-04-01
 */
public class UnionShopOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增id */
    private Integer orderId;

    /** 自动生成的订单号 yyyyMMddHHmmssAAAXXXXXX */
    @Excel(name = "自动生成的订单号 yyyyMMddHHmmssAAAXXXXXX")
    private String orderSn;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String userId;

    /** 推荐类型: 1用户推荐,2商户推荐 */
    @Excel(name = "推荐类型: 1用户推荐,2商户推荐")
    private String userRelType;

    /** 当 TYPE=1时,为用户 ID; TYPE=2时为商户的推荐 */
    @Excel(name = "当 TYPE=1时,为用户 ID; TYPE=2时为商户的推荐")
    private String userRelId;

    /** 店铺 ID */
    @Excel(name = "店铺 ID")
    private String shopId;

    /** 付款类型 1微信扫码,2支付宝扫码 */
    @Excel(name = "付款类型 1微信扫码,2支付宝扫码")
    private String paymentType;

    /** 订单状态: 1生成订单, 2确认订单, 3取消订单, 4作废订单, 5完成订单 */
    @Excel(name = "订单状态: 1生成订单, 2确认订单, 3取消订单, 4作废订单, 5完成订单")
    private Integer orderStatus;

    /** 支付状态: 0未支付，1部分支付，2已支付，3已退款，4退款审核中 */
    @Excel(name = "支付状态: 0未支付，1部分支付，2已支付，3已退款，4退款审核中")
    private Integer payStatus;

    /** 用户预获积分 */
    @Excel(name = "用户预获积分")
    private BigDecimal score;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal amount;

    /** 店铺折扣 */
    @Excel(name = "店铺折扣")
    private BigDecimal shopDiscount;

    /** 二级商户号 */
    @Excel(name = "二级商户号")
    private String merchantId;

    /** 一级商户号 + order_sn */
    @Excel(name = "一级商户号 + order_sn")
    private String tranflow;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedTime;

    /** 对应支付平台的唯一 ID; 微信openid ,支付宝userid */
    @Excel(name = "对应支付平台的唯一 ID; 微信openid ,支付宝userid")
    private String paymentPlatformId;

    /** 对应支付平台的 说明 */
    @Excel(name = "对应支付平台的 说明")
    private String paymentPlatformRemark;

    /** 中投通道费用 */
    @Excel(name = "中投通道费用")
    private BigDecimal msfChannelFee;

    /** 动动省通道费用 */
    @Excel(name = "动动省通道费用")
    private BigDecimal ddsChannelFee;

    /** 动动省二级商户(分润专用账户)费用 */
    @Excel(name = "动动省二级商户(分润专用账户)费用")
    private BigDecimal ddsMerchantFee;

    /** 目标商户费用 */
    @Excel(name = "目标商户费用")
    private BigDecimal merchantFee;

    /** 订单类型, 1用户付费订单,2商户退款充值订单 */
    @Excel(name = "订单类型, 1用户付费订单,2商户退款充值订单")
    private String orderType;

    /** 订单备注 */
    @Excel(name = "订单备注")
    private String orderRemark;

    /** 枚举类型 1返积分类订单;2补贴类订单 */
    @Excel(name = "枚举类型 1返积分类订单;2补贴类订单")
    private String orderMethod;

    /** 补贴金额. 用户实际支付=订单金额-补贴金额 */
    @Excel(name = "补贴金额. 用户实际支付=订单金额-补贴金额")
    private BigDecimal subsidy;

    /** 成本. 订单积分*14% ROUNDUP(2) */
    @Excel(name = "成本. 订单积分*14% ROUNDUP(2)")
    private BigDecimal cost;

    /** 实际付款额 */
    @Excel(name = "实际付款额")
    private BigDecimal actPayAmount;

    /** DDS补偿金额,商户应收货款-商户实收货款 */
    @Excel(name = "DDS补偿金额,商户应收货款-商户实收货款")
    private BigDecimal ddsSubsidy;

    /** DDS需要额外支付额，如大于0，则需动用 DDS一级商户的转账功能 */
    @Excel(name = "DDS需要额外支付额，如大于0，则需动用 DDS一级商户的转账功能")
    private BigDecimal ddsExtendPay;

    /** DDS需要额外支付成功后的业务流水号 */
    @Excel(name = "DDS需要额外支付成功后的业务流水号")
    private String ddsExtendPayTranflow;

    /** DDS需要额外支付状态，1成功 */
    @Excel(name = "DDS需要额外支付状态，1成功")
    private String ddsExtendPayStatus;

    public void setOrderId(Integer orderId) 
    {
        this.orderId = orderId;
    }

    public Integer getOrderId() 
    {
        return orderId;
    }
    public void setOrderSn(String orderSn) 
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn() 
    {
        return orderSn;
    }
    public void setUserId(String userId) 
    {
        this.userId = userId;
    }

    public String getUserId() 
    {
        return userId;
    }
    public void setUserRelType(String userRelType) 
    {
        this.userRelType = userRelType;
    }

    public String getUserRelType() 
    {
        return userRelType;
    }
    public void setUserRelId(String userRelId) 
    {
        this.userRelId = userRelId;
    }

    public String getUserRelId() 
    {
        return userRelId;
    }
    public void setShopId(String shopId) 
    {
        this.shopId = shopId;
    }

    public String getShopId() 
    {
        return shopId;
    }
    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }
    public void setOrderStatus(Integer orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() 
    {
        return orderStatus;
    }
    public void setPayStatus(Integer payStatus) 
    {
        this.payStatus = payStatus;
    }

    public Integer getPayStatus() 
    {
        return payStatus;
    }
    public void setScore(BigDecimal score) 
    {
        this.score = score;
    }

    public BigDecimal getScore() 
    {
        return score;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setShopDiscount(BigDecimal shopDiscount) 
    {
        this.shopDiscount = shopDiscount;
    }

    public BigDecimal getShopDiscount() 
    {
        return shopDiscount;
    }
    public void setMerchantId(String merchantId) 
    {
        this.merchantId = merchantId;
    }

    public String getMerchantId() 
    {
        return merchantId;
    }
    public void setTranflow(String tranflow) 
    {
        this.tranflow = tranflow;
    }

    public String getTranflow() 
    {
        return tranflow;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }
    public void setUpdatedTime(Date updatedTime) 
    {
        this.updatedTime = updatedTime;
    }

    public Date getUpdatedTime() 
    {
        return updatedTime;
    }
    public void setPaymentPlatformId(String paymentPlatformId) 
    {
        this.paymentPlatformId = paymentPlatformId;
    }

    public String getPaymentPlatformId() 
    {
        return paymentPlatformId;
    }
    public void setPaymentPlatformRemark(String paymentPlatformRemark) 
    {
        this.paymentPlatformRemark = paymentPlatformRemark;
    }

    public String getPaymentPlatformRemark() 
    {
        return paymentPlatformRemark;
    }
    public void setMsfChannelFee(BigDecimal msfChannelFee) 
    {
        this.msfChannelFee = msfChannelFee;
    }

    public BigDecimal getMsfChannelFee() 
    {
        return msfChannelFee;
    }
    public void setDdsChannelFee(BigDecimal ddsChannelFee) 
    {
        this.ddsChannelFee = ddsChannelFee;
    }

    public BigDecimal getDdsChannelFee() 
    {
        return ddsChannelFee;
    }
    public void setDdsMerchantFee(BigDecimal ddsMerchantFee) 
    {
        this.ddsMerchantFee = ddsMerchantFee;
    }

    public BigDecimal getDdsMerchantFee() 
    {
        return ddsMerchantFee;
    }
    public void setMerchantFee(BigDecimal merchantFee) 
    {
        this.merchantFee = merchantFee;
    }

    public BigDecimal getMerchantFee() 
    {
        return merchantFee;
    }
    public void setOrderType(String orderType) 
    {
        this.orderType = orderType;
    }

    public String getOrderType() 
    {
        return orderType;
    }
    public void setOrderRemark(String orderRemark) 
    {
        this.orderRemark = orderRemark;
    }

    public String getOrderRemark() 
    {
        return orderRemark;
    }
    public void setOrderMethod(String orderMethod) 
    {
        this.orderMethod = orderMethod;
    }

    public String getOrderMethod() 
    {
        return orderMethod;
    }
    public void setSubsidy(BigDecimal subsidy) 
    {
        this.subsidy = subsidy;
    }

    public BigDecimal getSubsidy() 
    {
        return subsidy;
    }
    public void setCost(BigDecimal cost) 
    {
        this.cost = cost;
    }

    public BigDecimal getCost() 
    {
        return cost;
    }
    public void setActPayAmount(BigDecimal actPayAmount) 
    {
        this.actPayAmount = actPayAmount;
    }

    public BigDecimal getActPayAmount() 
    {
        return actPayAmount;
    }
    public void setDdsSubsidy(BigDecimal ddsSubsidy) 
    {
        this.ddsSubsidy = ddsSubsidy;
    }

    public BigDecimal getDdsSubsidy() 
    {
        return ddsSubsidy;
    }
    public void setDdsExtendPay(BigDecimal ddsExtendPay) 
    {
        this.ddsExtendPay = ddsExtendPay;
    }

    public BigDecimal getDdsExtendPay() 
    {
        return ddsExtendPay;
    }
    public void setDdsExtendPayTranflow(String ddsExtendPayTranflow) 
    {
        this.ddsExtendPayTranflow = ddsExtendPayTranflow;
    }

    public String getDdsExtendPayTranflow() 
    {
        return ddsExtendPayTranflow;
    }
    public void setDdsExtendPayStatus(String ddsExtendPayStatus) 
    {
        this.ddsExtendPayStatus = ddsExtendPayStatus;
    }

    public String getDdsExtendPayStatus() 
    {
        return ddsExtendPayStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderSn", getOrderSn())
            .append("userId", getUserId())
            .append("userRelType", getUserRelType())
            .append("userRelId", getUserRelId())
            .append("shopId", getShopId())
            .append("paymentType", getPaymentType())
            .append("orderStatus", getOrderStatus())
            .append("payStatus", getPayStatus())
            .append("score", getScore())
            .append("amount", getAmount())
            .append("shopDiscount", getShopDiscount())
            .append("merchantId", getMerchantId())
            .append("tranflow", getTranflow())
            .append("payTime", getPayTime())
            .append("createdTime", getCreatedTime())
            .append("updatedTime", getUpdatedTime())
            .append("paymentPlatformId", getPaymentPlatformId())
            .append("paymentPlatformRemark", getPaymentPlatformRemark())
            .append("msfChannelFee", getMsfChannelFee())
            .append("ddsChannelFee", getDdsChannelFee())
            .append("ddsMerchantFee", getDdsMerchantFee())
            .append("merchantFee", getMerchantFee())
            .append("orderType", getOrderType())
            .append("orderRemark", getOrderRemark())
            .append("orderMethod", getOrderMethod())
            .append("subsidy", getSubsidy())
            .append("cost", getCost())
            .append("actPayAmount", getActPayAmount())
            .append("ddsSubsidy", getDdsSubsidy())
            .append("ddsExtendPay", getDdsExtendPay())
            .append("ddsExtendPayTranflow", getDdsExtendPayTranflow())
            .append("ddsExtendPayStatus", getDdsExtendPayStatus())
            .toString();
    }
}
